Design Pattern Decay – a Study of Design Pattern Grime and Its Impact on Quality and Technical Debt
نویسنده
چکیده
Technical debt is a financial metaphor describing the tradeoff between the short term benefits gained and long term consequences of design and implementation shortcuts taken over the evolution of a software product. These shortcuts typically manifest as design disharmonies such as code smells, anti-patterns, design pattern grime, modularity violations, or violations of good coding rules. Currently little is known about the relationships between these design disharmonies and current technical debt metrics, between design disharmonies and quality attributes (e.g., maintainability or security), and technical debt metrics and quality attributes. The focus of this proposal is on evolution and effects of a type of design disharmony called design pattern grime. Design pattern grime is the accumulation of unnecessary or unrelated software artifacts within the classes of a design pattern instance. Since design patterns represent agreed upon methods to solve common problems and are based upon sound principles of good design, the decay of these patterns implies an evolution away from good design. This research will expand the knowledge base of design pattern grime through systematic and empirical evaluation of its effects on quality and technical debt. Initially, we define an extended taxonomy of design pattern grime based on design principles in conjunction with metrics. Using this taxonomy as a guide we intend to experiment with open source software to evaluate the effect of design pattern grime on software product quality and technical debt. We also propose three case studies in the context of both open source and industry grade software to study the evolution of grime, the relationship between grime subtypes, and the effect of automated monitoring of technical debt in an industry setting. This research proposes the following contributions: A formalized method for conducting controlled experiments through the automated injection of design disharmonies. An extended taxonomy of design pattern grime. An approach to automate the detection of design pattern grime. An evaluation of the relationships between design pattern grime types. Empirical confirmation of the existence of all known types of design pattern grime. Finally, an evaluation of the effects of grime on quality and technical debt.
منابع مشابه
A Research Plan to Characterize, Evaluate, and Predict the Impacts of Behavioral Decay in Design Patterns
We propose a research plan to further the understanding of design pattern evolution. Current research into design pattern evolution focuses on the structural elements of decay, which is realized as structural grime. We plan to expand the current state of research by introducing the notion of behavioral grime, or unwanted artifacts that appear at run-time in a pattern. This form of grime may be ...
متن کاملDesign Pattern Decay: An Extended Taxonomy and Empirical Study of Grime and its Impact on Design Pattern Evolution
Design patterns are well known solutions to common problems and are extensively utilized in software development. Yet, little empirical work has been conducted to evaluate or validate the consequences that poor design decisions have on pattern realizations. This paper describes a research program to further the understanding of design pattern evolution. Specifically, we focus on design pattern ...
متن کاملThe Evolution of Design Pattern Grime: An Industrial Case Study
Context: GoF design patterns are popular among both researchers and practitioners, in the sense that software can be largely comprised of pattern instances. However, there are concerns regarding the efficacy with which software engineers maintain pattern instances, which tend to decay over the software lifetime if no special emphasis is placed on them. Pattern grime (i.e., degradation of the in...
متن کاملDesigning a Teaching Pattern from Students\' Lived Experiences of the Teaching Process in Universities of Iran (Technical and Engineering Disciplines)
Purpose: The present research aimed to designing a teaching pattern from students’ lived experiences of the teaching process in universities of Iran in technical and engineering disciplines. Methodology: This study in terms of purpose was applied and in terms of implementation was qualitative from type of phenomenological. The study population consisted of postgraduate and PhD students in tech...
متن کاملExplaining Pattern-Based Reading in TeachingArchitectural History and Evaluating its Effectivenesson Architecture Students’ Ideation and Insights
In the following article, the necessity of effectiveness and application of historicalknowledge in architectural design is discussed. In other words, how historical data canbe an approach to enhance students’ design insights. A review of the literature suggeststhat one of the challenges of teaching architecture is helping students in the process ofcreating new ideas. Accordingly, one of the pro...
متن کامل